import { equals } from 'ramda'

/*
 * @Description:
 * @Author: fhw
 * @Date: 2023-01-14 09:52:52
 */
// 键盘复制事件
export async function handleKeyDown(e: any) {
	// 判断组合键是否同时按下
	if (e.ctrlKey && equals(e.code, 'KeyC')) {
		const selection = window.getSelection()
		const range = document.createRange()
		//设置选中区域，参数node节点
		range.selectNodeContents(document.querySelector('.message') as Element)
		//选择选中区域
		const rangeObj = selection?.getRangeAt(0)
		const docFragment = rangeObj?.cloneContents()
		const tempDiv = document.createElement('div')
		tempDiv.appendChild(docFragment as DocumentFragment)
		const html = tempDiv.innerHTML
		//取消选中
		window.getSelection()?.removeAllRanges()
		// 开启复制内容
		// 创建input元素
		const el = document.createElement('input')
		// 给input元素赋值需要复制的文本
		el.setAttribute('value', html)
		// 将input元素插入页面
		document.body.appendChild(el)
		// 选中input元素的文本
		el.select()
		// 复制内容到剪贴板
		document.execCommand('copy')
		// 删除input元素
		document.body.removeChild(el)
	}
}
